1406A - Subset Mex - CodeForces Solution


greedy implementation math *900

Please click on ads to support us..

Python Code:

n = int(input())
for j in range(0,n):
    m = int(input())
    a = input().split()
    l =[]
    p =[]
    for o in range(0,m):
        if int(a[o]) not in l:
            l.append(int(a[o]))
        else:
            p.append(int(a[o]))

    b = False
    for i in range(0, len(l)):
        if i not in l:
            b = True
            break
    if b:

        s = (i)
    else:
        s = (len(l))
    if p == []:
        print(s)
    else:
        b = False
        for i in range(0, len(p)):
            if i not in p:
                b = True
                break
        if b:

            print(s+i)
        else:
            print(s+len(p))
        

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define pb push_back 
 
int main (){
    int t;
    cin>>t;
    while(t--){
    int n;
    cin>>n;
    vector<int>a(n);
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a.begin(),a.end());
    if(a[0]!=0){
        cout<<0<<endl;
        continue;
    }
    int missing;
    for(int i=0;i<=100;i++){ if(find(a.begin(),a.end(),i)==a.end()){ missing=i;break;}}
 
    int ans;
    int j=0;
    for(;j<n;j++){
        if(j==0 && a[j]!=a[j+1]){ ans=a[0];
        break;
        }
        else if(j==n-1 && a[j]!=a[j-1]) {
            ans=a[n-1];
            break;
        }
        else if(a[j-1]!=a[j] && a[j]!=a[j+1]) {
            ans=a[j];
            break;
        }
    }
    if(j==n) ans=a[n-1]+1;
    if(ans>missing) cout<<2*missing<<endl;
    else cout<<missing+ans<<endl;
    }
  
        
    
    return 0;
}


Comments

Submit
0 Comments
More Questions

2144. Minimum Cost of Buying Candies With Discount
Non empty subsets
1630A - And Matching
1630B - Range and Partition
1630C - Paint the Middle
1630D - Flipping Range
1328A - Divisibility Problem
339A - Helpful Maths
4A - Watermelon
476A - Dreamoon and Stairs
1409A - Yet Another Two Integers Problem
977A - Wrong Subtraction
263A - Beautiful Matrix
180C - Letter
151A - Soft Drinking
1352A - Sum of Round Numbers
281A - Word Capitalization
1646A - Square Counting
266A - Stones on the Table
61A - Ultra-Fast Mathematician
148A - Insomnia cure
1650A - Deletions of Two Adjacent Letters
1512A - Spy Detected
282A - Bit++
69A - Young Physicist
1651A - Playoff
734A - Anton and Danik
1300B - Assigning to Classes
1647A - Madoka and Math Dad
710A - King Moves